#include <bits/stdc++.h>
using namespace std;
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
using ll = long long;
ll n, m;
vector<ll> a(1e5 + 10);
bool check(ll x, ll q)
{
    ll last = 0;

    for (ll i = 1; i < n; i++)
    {
        int step = a[i] - a[i - 1];
        if (step > x)
        {
            if (step % x == 0)
            {
                q -= (step / x - 1);
            }
            else
            {
                q -= (step / x);
            }
        }
        if (q < 0)
            return false;
    }
    return true;
}
void solve()
{

    cin >> n >> m;

    for (ll i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    m = m + 1;
    // ll ans = 0;
    // ll st = a[1];
    // for (int i = 1; i < n;i++)
    // {

    // }

    ll l = 0, r = 1e8 ;
    while (l < r)
    {
        ll mid = (l + r ) / 2;
        if (check(mid, m))
        {
            r = mid;
        }
        else
        {
            l = mid+1;
        }
    }
    cout << l << endl;
}
int main()
{
    int t = 1;
    // cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}
